#ifndef _CLEARAREAACTION_
#define _CLEARAREAACTION_

#include "BaseAction.hpp"
#include "Utilities/StringHelper.hpp"
#include "SFML/Graphics.hpp"
#include "Content/Map.hpp"
#include <vector>

class ClearAreaAction:public BaseAction{
private:
    struct ClearTile{
        int tile;
        int layer;
        int value;
    };
    vector<ClearTile> clearedTiles;
    Map* target;
    sf::Rect<int> source;
public:
    ClearAreaAction(Map* map, sf::Rect<int> src, bool cut);
    virtual void perform();
    virtual void undo();
};

#endif